package com.clps.algorithm02.chapter01.二进制加法;

/**
 * 输入两个表示二进制的字符串，请计算它们的和，并以二进制字符串的形式输出。例如输入的二进制字符串分别是"11"和"10"，则输出"101"。
 */
public class demo01 {
    public static void main(String[] args) {
        
    }
    
    public String addBinary(String a,String b){
        StringBuilder rersult = new StringBuilder();
        int i = a.length()-1;
        int j = a.length()-1;
        int carry = 0;
        while (i>=0 || j>=0){
            int digitA = i>=0? a.charAt(i--)-'0':0;
            int digitB = j>=0? a.charAt(i--)-'0':0;
            int sum = digitA+digitB+carry;
            carry= sum >=2?sum-2:sum;
            rersult.append(sum);
        }

        if(carry ==1){
            rersult.append(1);
        }
        return rersult.reverse().toString();
    }
}
